In wireless networking, the phrase “hidden node” refers to a base station that can exchange data wirelessly with some of the base stations in the wireless network but not all of them. Consider, for example, the simplified wireless network shown in FIG. 1, in which there are three base stations: an access point AP and two other stations STA1 and STA2. Each of STA1 and STA2 can exchange data bi-directionally and wirelessly with access point AP. However, because of limitations of transmission range and radio signal visibility, STA1 and STA2 cannot see each other, or exchange data with each other. Thus, STA1 is a “hidden node” from the perspective of STA2, and STA2 is a “hidden node” from the perspective of STA1.
Note that in this simplified diagram, hidden nodes are caused by limitations in transmission range and/or radio signal visibility. However, hidden nodes can be caused by other factors such as physical structures (walls, conductive materials, etc.) or electrical interference that tend to block radio signal transmissions.
The existence of hidden nodes, and the difficulties caused thereby, are both known in the art. Specifically, wireless networks adhering to IEEE 802.11 specifications communicate according to a CSMA/CA protocol: “carrier sense multiple access with collision avoidance”. According to the CSMA/CA protocol, a station wishing to transmit first listens on the channel for a predetermined amount of time, to determine whether there is any activity on the channel. If the station senses that the channel is “idle”, then the station proceeds to transmit. If the station senses that the channel is “busy”, the station defers its transmission for a random interval, before again attempting a transmission.
The CSMA/CA protocol fails to avoid collisions in the presence of hidden nodes, however, since a base station cannot see all other base stations, and thus is unable to make an accurate determination of whether the channel is “idle” or “busy”. Again referring to FIG. 1, it is possible that STA2 is currently transmitting to access point AP. STA1 also wishes to transmit. In accordance with CSMA/CA, STA1 listens for a predetermined amount of time on the channel so as to check for activity. However, since STA2 is hidden from the perspective of STA1, STA1 is unable to hear the ongoing transmission from STA2 to access point AP, and therefore makes an inaccurate determination that the channel is “idle”. STA1 therefore makes its transmission, which directly collides with the ongoing transmission from STA2, possibly resulting in a failure of both transmissions.
In recognition of this problem, the CSMA/CA protocol has been supplemented with a so-called RTS/CTS exchange mode (“request to send/clear to send”). In the RTS/CTS exchange mode, a station first asks permission to initiate a data transmission, by sending an RTS frame. The RTS frame is addressed to the destination node, which in this example is the access point AP. The destination node replies with a CTS frame, to signify that it is safe to transmit. Any other node receiving the CTS frame refrains from sending data for a given period of time. Thus, in this example, since access point AP is visible to all base stations including STA1 and STA2, STA2 would refrain from transmitting data for a given period of time upon receipt of a CTS frame directed to STA1. Therefore, because of the RTS/CTS handshake, collisions caused by hidden nodes can be avoided.
One difficulty with the RTS/CTS exchange mode is that it introduces delays and transmission overhead that are not needed unless a hidden node is present. Specifically, since a successful RTS/CTS handshake is required before actual data transmission is initiated, there is a delay before actual data transmission, resulting in significant reductions in available network bandwidth. Moreover, the RTS/CTS handshake itself requires consumption of some of the available bandwidth, simply to establish the handshake. For these reasons, the RTS/CTS exchange mode is normally off by default, and must be turned on manually if a network administrator determines that it is needed because of the presence of a hidden node.